<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    video {
      width: 800px;
      height: 400px;
    }
  </style>
</head>
<body>
  <script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
  <video src="https://v.itheima.net/LapADhV6.mp4" controls></video>

  <script>
    // 1. 获取到 video标签 元素：
    const video = document.querySelector('video')

    // 2. 通过 timeupdate事件, 获取到当前的播放视频时间：
    // video.addEventListener('timeupdate', function() {
    //   // console.log(this.currentTime)

    //   // 3. 将当前的播放进度(或叫播放历史)存储到本地, 模拟下次用户再
    //   // 播放本视频时, 复现原来的进度：
    //   localStorage.setItem('playTime', this.currentTime)
    // })

    // 4. 通过节流函数 ->处理"抖动"问题, 实现每隔一段时间, 才进行存储数据, 以免频繁请求...
    video.addEventListener('timeupdate', _.throttle(() => {
      // 细节1：这里, 因为有 <箭头函数> 的存在, 因此不能用 this 了(或者另寻办法)
      localStorage.setItem('playTime', video.currentTime)
    }, 1000))

    // 5. 模拟 ->用户打开页面时, 将时间节点赋值给视频：(复现播放历史)
    video.onloadeddata = () => {
      video.currentTime = localStorage.getItem('playTime') || 0
    }
  </script>
</body>
</html>